home *** CD-ROM | disk | FTP | other *** search
/ Fritz: All Fritz / All Fritz.zip / All Fritz / FILES / SPREOTUS / SYMWKS1.LZH / SPACER.TXT < prev    next >
Text File  |  1984-12-01  |  4KB  |  95 lines

  1.  
  2.             DATA DEPENDENT LINE SPACING IN DATA BASE REPORTS
  3.  
  4. PROBLEM
  5.  
  6. There are frequently circumstances in the generation of Data Base
  7. Reports under Symphony where it would be useful to have an extra line
  8. feed inserted depending upon the data content of the previous or next
  9. record in the report.  Examples:
  10.  
  11.      When printing a mailing list or phone list in alphabetic order,
  12.       the report will be more legible if there is an extra line-feed
  13.       separating the A's from the B's, and so on.
  14.  
  15.      When printing data from a chart of accounts, to be able to feed a
  16.       line when the master account number changes.
  17.  
  18. Although one might use the Symphony "Multiple" report format to do this,
  19. this can be cumbersome to set up, and forces printing of the "Above
  20. Range" with each section of the report.
  21.  
  22. Symphony allows you to imbed control codes in the report range using the
  23. special label prefix "|", but unfortunately, the control codes following
  24. the "|" must be fixed and not computed.  Moreover, Symphony sends to the
  25. printer ONLY the contents of the "|" label on that line.
  26.  
  27. SOLUTION
  28.  
  29. There is a solution IF your printer permits or uses "Escape" code
  30. sequences to cause line feeds or to affect the size of line feeds.  An
  31. "Escape" code sequence is one in which a particular control code (ASCII
  32. 0 to 31) causes the printer to interpret the following characters as a
  33. command line rather than as data to be printed.  The most common
  34. character to initiate this is \027 (Escape), but might be any other that
  35. the printer manufacturer chooses.
  36.  
  37. For example, the IDS Prism printer allows one to use an escape sequence
  38. to program the line separation that occurs with an ordinary line feed.
  39. In order to establish a line spacing of nn/48 inches, one sends to the
  40. printer the following sequence: \027,B,nn,$
  41. Thus the sequence \027,B,8,$ sets normal (6 lines per inch) spacing,
  42. while \027,B,0,$ causes no paper advance with the normal line feed. 
  43.  
  44. EXAMPLE
  45.  
  46. In order to take advantage of this under Symphony, consider the
  47. following example.  You have a data base consisteing of two fields,
  48. "Name" and "Address", and wish to print the alphabetic listing skipping
  49. lines whenever the first letter of the name changes.  In the "Main"
  50. range of the Report, use the following four lines:
  51.  
  52.      |\027,B,
  53.      @IF(@LEFT(+NAME,1)<>@LEFT(+A25),"8,$","0,$")
  54.      |\027,B,8,$
  55.      +NAME
  56.  
  57. Here, the first and third lines are Labels with the special prefix "|".
  58. (Enter these by typing ||\027, etc.).  The second line is a formula that
  59. compares tests the first character of the NAME with the entry preceding
  60. it.  (In the example, the cell address of NAME would be A26.) The effect
  61. of this sequence is to single space the list of names except where the
  62. lead letter changes.  There, an extra line is inserted.  The sequence
  63. works as follows:
  64.  
  65.      Symphony sends only the special label contents for the first line.
  66.       This initiates the escape sequence to the printer.
  67.  
  68.      The second line is transmitted in its entirety.  Because Symphony
  69.       interprets this as a simple string to print, it will terminate
  70.       this line with a carriage return/line feed.  The printer will
  71.       interpret the string value of the @IF as the new spacing (Normal
  72.       or Zero) and will space to the next line accordingly when it
  73.       receives the line feed.
  74.  
  75.      The third line is only an escape sequence (no characters or line
  76.       feed will be sent by Symphony).  The sequence will assure that the
  77.       printer has returned to normal spacing when it prints the fourth
  78.       line.
  79.  
  80.      Finally, the fourth line is the normal Report line.  If line two
  81.       evaluated to "0,$" then this is the only line of the sequence
  82.       which will cause the paper to advance in the printer.
  83.  
  84. NOTES
  85.  
  86. Although this technique is discussed in the context of line spacing, it
  87. can be used to cause data dependent selection of any of the printers
  88. special features that are invoked by escape codes.  For instance, with
  89. many printers it would be possible to cause a data dependent change in
  90. the font, say to print the bulk of a report in draft mode, but to switch
  91. to Near Letter Quality for the first line in a block.
  92.  
  93.                                         Woody Beeler  76044,351
  94.                                                                
  95.